package com.zjsru.oneDay202206;

/**
 * @Author: likew
 * @Date: 2022/6/17
 *
 * 给你一个长度固定的整数数组 arr，请你将该数组中出现的每个零都复写一遍，并将其余的元素向右平移。
 *
 * 输入：[1,0,2,3,0,4,5,0]
 * 输出：null
 * 解释：调用函数后，输入的数组将被修改为：[1,0,0,2,3,0,0,4]
 */
public class duplicateZeros {
    public void duplicateZeros(int[] arr) {
        int n = arr.length, i = 0, j = 0;
        while(j < n){
            if(arr[i] == 0){
                j++;
            }
            i++;
            j++;
        }
        i--;
        j--;
        while(i >= 0){
            if(j < n){
                arr[j] = arr[i];
            }
            if(arr[i] == 0 && --j >= 0) arr[j] = 0;
            i--; j--;
        }
    }
    
    public static void main(String[] args) {
        duplicateZeros duplicateZeros = new duplicateZeros();
        int[] arr = new int[]{1,0,0,2,3,0,0,4};
        duplicateZeros.duplicateZeros(arr);
    }
}
